import java.math.BigInteger;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        /*int t= in.nextInt();
        while (t-->0){
            int a= in.nextInt(),b= in.nextInt(),c= in.nextInt();
            int grade=0;
            if(a==b&&a==c){
                System.out.println(a*2);
            } else if (a==0||c==0) {
                System.out.println(b-1);
            } else if (b==0) {
                System.out.println(0);
            } else {
                grade+=Math.min(Math.min(a,b),c)*2;
                b-=Math.min(Math.min(a,b),c);
                if(b!=0){
                    grade+=b-1;
                }
                System.out.println(grade);
            }
        }*/
        String str1=in.next();
        String str2=in.next();
        /*char[] arr1=str1.toCharArray();
        char[] arr2=str2.toCharArray();
        long sum1=0;
        long sum2=0;
        for (int i = 0; i < arr1.length; i++) {
            sum1+=(arr1[i]-'0')*Math.pow(10,arr1.length-1-i);
        }
        for (int i = 0; i < arr2.length; i++) {
            sum2+=(arr2[i]-'0')*Math.pow(10,arr2.length-1-i);
        }
        System.out.println((sum1+sum2)+"");*/
        String s=solve1(str1,str2);
        System.out.println(s);
    }
    class Node{
        private int val;
        private Node next;
        public Node(int val){
            this.val=val;
        }
    }
    public int LastRemaining_Solution (int n, int m) {
        Node listNode = new Node(0);
        Node cur = listNode;
        for (int i = 1; i < n; i++) {
            cur.next = new Node(i);
            cur = cur.next;
        }
        cur.next = listNode;
        Node pre = cur;
        cur = cur.next;
        while (n > 1) {
            for (int i = 0; i < m-1; i++) {
                cur = cur.next;
                pre = pre.next;
            }
            pre.next = cur.next;
            cur.next = null;
            cur = pre.next;
            n--;
        }
        return cur.val;
    }
    int[] dx={1,-1,0,0};
    int[] dy={0,0,1,-1};
    public int rotApple (ArrayList<ArrayList<Integer>> grid) {
          int n=grid.size(),m=grid.get(0).size();
          boolean[][] visits=new boolean[n][m];
          Queue<int[]> queue=new LinkedList<>();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(grid.get(i).get(j)==2){
                    queue.add(new int[]{i,j});
                }
            }
        }
        int ret=0;
        while (!queue.isEmpty()){
            int sz= queue.size();
            while (sz-->0){
                int[] arr= queue.poll();
                int x=arr[0],y=arr[1];
                for (int i = 0; i < 4; i++) {
                    x=x+dx[i];
                    y=y+dy[i];
                    if(x>=0&&x<n&&y>=0&&y<m&&!visits[x][y]&&grid.get(x).get(y) == 1){
                        visits[x][y]=true;
                        queue.add(new int[]{x,y});
                    }
                }
            }
            ret++;
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(grid.get(i).get(j)==1&&!visits[i][j]){
                    return -1;
                }
            }
        }
        return ret-1;
    }
    public static String solve1(String s, String t){
        int sLen=s.length();
        int tLen=t.length();
        StringBuilder sb=new StringBuilder();
        int sSum=0,tSum=0,ca=0,sum=0;
        int i=sLen-1,j=tLen-1;
        while (i>=0||j>=0){
            if(i>=0){
                sSum=s.charAt(i)-'0';
            }else {
                sSum=0;
            }
            if(j>=0){
                tSum=t.charAt(j)-'0';
            }else {
                tSum=0;
            }
            sum=sSum+tSum+ca;
            sb.append((char)(sum%10+'0'));
            ca=sum/10;
            i--;
            j--;
        }
        if(ca>0){
            sb.append(ca);
        }
        return sb.reverse().toString();
    }
    public ListNode addInList (ListNode head1, ListNode head2) {
           ListNode head3=new ListNode(0);
           ListNode p=head3;
           int sum1=0;
           int sum2=0;
           while (head1!=null||head2!=null){
               if(head1!=null){
                   sum1=sum1*10+head1.val;
               }
               if(head2!=null){
                   sum2=sum2*10+head2.val;
               }
           }
           int sum=sum1+sum2;
           while (sum>0){
               p.next=new ListNode(sum%10);
               sum/=10;
           }
           ListNode pre=head3.next;
           ListNode cur=pre.next;
           while (cur!=null){
               pre.next=cur.next;
               cur.next=pre;
               cur=pre.next;
           }
           return head3.next;
    }
    public String solve (String s, String t) {
        BigInteger b1=new BigInteger(s);
        BigInteger b2=new BigInteger(t);
        BigInteger b3=b1.multiply(b2);
        return b3.toString();
    }

}
class ListNode {
    int val;
    ListNode next = null;
    public ListNode(int val) {
      this.val = val;
    }
}